package com.lzy.pulltorefreshswipemenulistview.util;

import android.content.Context;
import android.util.TypedValue;

/**
 * 类描述：单位转换工具类
 * 
 * @Time 2015年11月3日
 * @author lizy18
 */
public class DensityUtils {
	private DensityUtils() {
		/* cannot be instantiated */
		throw new UnsupportedOperationException(
				"DensityUtils cannot be instantiated");
	}

	/**
	 * Convert the "dp" to the "px".
	 * 
	 * @Time 2015年11月3日
	 * @Author lizy18
	 * @param context
	 *            The context to use. Usually your
	 *            {@link android.app.Application} or
	 *            {@link android.app.Activity} object.
	 * @param dpVal
	 *            The "dp" value to convert from.
	 * @return Return the "px" value.
	 */
	public static int dpToPx(Context context, float dpVal) {
		return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
				dpVal, context.getResources().getDisplayMetrics());
	}

	/**
	 * Convert the "sp" to the "px".
	 * 
	 * @Time 2015年11月3日
	 * @Author lizy18
	 * @param context
	 *            The context to use. Usually your
	 *            {@link android.app.Application} or
	 *            {@link android.app.Activity} object.
	 * @param spVal
	 *            The "sp" value to convert from.
	 * @return Return the "px" value.
	 */
	public static int spToPx(Context context, float spVal) {
		return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,
				spVal, context.getResources().getDisplayMetrics());
	}

	/**
	 * Convert the "px" to the "dp".
	 * 
	 * @Time 2015年11月3日
	 * @Author lizy18
	 * @param context
	 *            The context to use. Usually your
	 *            {@link android.app.Application} or
	 *            {@link android.app.Activity} object.
	 * @param pxVal
	 *            The "px" value to convert from.
	 * @return Return the "dp" value.
	 */
	public static float pxToDp(Context context, float pxVal) {
		return (pxVal / (context.getResources().getDisplayMetrics().density));
	}
	/**
	 * Convert the "px" to the "sp".
	 * 
	 * @Time 2015年11月3日
	 * @Author lizy18
	 * @param context
	 *            The context to use. Usually your
	 *            {@link android.app.Application} or
	 *            {@link android.app.Activity} object.
	 * @param pxVal
	 *            The "px" value to convert from.
	 * @return Return the "sp" value.
	 */
	public static float pxToSp(Context context, float pxVal) {
		return (pxVal / (context.getResources().getDisplayMetrics().scaledDensity));
	}
}
